(0) Obligation:

Clauses:

times(X, Y, Z) :- mult(X, Y, 0, Z).
mult(0, Y, 0, 0).
mult(s(U), Y, 0, Z) :- mult(U, Y, Y, Z).
mult(X, Y, s(W), s(Z)) :- mult(X, Y, W, Z).

Query: times(g,g,a)

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph DT10.

(2) Obligation:

Triples:

multA(s(X1), X2) :- multA(X1, X2).
multB(s(X1), s(X2)) :- multB(X1, X2).
multC(s(X1), s(s(X2))) :- multC(X1, X2).
multD(s(X1), s(s(s(X2)))) :- multD(X1, X2).
multE(s(X1), s(s(s(s(X2))))) :- multE(X1, X2).
multF(s(X1), s(s(s(s(s(X2)))))) :- multF(X1, X2).
multG(s(X1), s(s(s(s(s(s(X2))))))) :- multG(X1, X2).
multH(s(X1), s(s(s(s(s(s(s(X2)))))))) :- multH(X1, X2).
multI(s(X1), 0, X2) :- multA(X1, X2).
multI(s(X1), s(0), s(X2)) :- multB(X1, X2).
multI(s(X1), s(s(0)), s(s(X2))) :- multC(X1, X2).
multI(s(X1), s(s(s(0))), s(s(s(X2)))) :- multD(X1, X2).
multI(s(X1), s(s(s(s(0)))), s(s(s(s(X2))))) :- multE(X1, X2).
multI(s(X1), s(s(s(s(s(0))))), s(s(s(s(s(X2)))))) :- multF(X1, X2).
multI(s(X1), s(s(s(s(s(s(0)))))), s(s(s(s(s(s(X2))))))) :- multG(X1, X2).
multI(s(X1), s(s(s(s(s(s(s(0))))))), s(s(s(s(s(s(s(X2)))))))) :- multH(X1, X2).
multI(X1, s(s(s(s(s(s(s(s(X2)))))))), s(s(s(s(s(s(s(s(X3))))))))) :- multJ(X1, s(s(s(s(s(s(s(X2))))))), X2, X3).
multJ(s(X1), X2, 0, X3) :- multI(X1, s(X2), X3).
multJ(X1, X2, s(X3), s(X4)) :- multJ(X1, X2, X3, X4).
timesK(s(X1), X2, X3) :- multI(X1, X2, X3).

Clauses:

multcA(0, 0).
multcA(s(X1), X2) :- multcA(X1, X2).
multcB(0, s(0)).
multcB(s(X1), s(X2)) :- multcB(X1, X2).
multcC(0, s(s(0))).
multcC(s(X1), s(s(X2))) :- multcC(X1, X2).
multcD(0, s(s(s(0)))).
multcD(s(X1), s(s(s(X2)))) :- multcD(X1, X2).
multcE(0, s(s(s(s(0))))).
multcE(s(X1), s(s(s(s(X2))))) :- multcE(X1, X2).
multcF(0, s(s(s(s(s(0)))))).
multcF(s(X1), s(s(s(s(s(X2)))))) :- multcF(X1, X2).
multcG(0, s(s(s(s(s(s(0))))))).
multcG(s(X1), s(s(s(s(s(s(X2))))))) :- multcG(X1, X2).
multcH(0, s(s(s(s(s(s(s(0)))))))).
multcH(s(X1), s(s(s(s(s(s(s(X2)))))))) :- multcH(X1, X2).
multcI(0, 0, 0).
multcI(s(X1), 0, X2) :- multcA(X1, X2).
multcI(0, s(0), s(0)).
multcI(s(X1), s(0), s(X2)) :- multcB(X1, X2).
multcI(0, s(s(0)), s(s(0))).
multcI(s(X1), s(s(0)), s(s(X2))) :- multcC(X1, X2).
multcI(0, s(s(s(0))), s(s(s(0)))).
multcI(s(X1), s(s(s(0))), s(s(s(X2)))) :- multcD(X1, X2).
multcI(0, s(s(s(s(0)))), s(s(s(s(0))))).
multcI(s(X1), s(s(s(s(0)))), s(s(s(s(X2))))) :- multcE(X1, X2).
multcI(0, s(s(s(s(s(0))))), s(s(s(s(s(0)))))).
multcI(s(X1), s(s(s(s(s(0))))), s(s(s(s(s(X2)))))) :- multcF(X1, X2).
multcI(0, s(s(s(s(s(s(0)))))), s(s(s(s(s(s(0))))))).
multcI(s(X1), s(s(s(s(s(s(0)))))), s(s(s(s(s(s(X2))))))) :- multcG(X1, X2).
multcI(0, s(s(s(s(s(s(s(0))))))), s(s(s(s(s(s(s(0)))))))).
multcI(s(X1), s(s(s(s(s(s(s(0))))))), s(s(s(s(s(s(s(X2)))))))) :- multcH(X1, X2).
multcI(X1, s(s(s(s(s(s(s(s(X2)))))))), s(s(s(s(s(s(s(s(X3))))))))) :- multcJ(X1, s(s(s(s(s(s(s(X2))))))), X2, X3).
multcJ(0, X1, 0, 0).
multcJ(s(X1), X2, 0, X3) :- multcI(X1, s(X2), X3).
multcJ(X1, X2, s(X3), s(X4)) :- multcJ(X1, X2, X3, X4).

Afs:

timesK(x1, x2, x3)  =  timesK(x1, x2)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:
timesK_in: (b,b,f)
multI_in: (b,b,f)
multA_in: (b,f)
multB_in: (b,f)
multC_in: (b,f)
multD_in: (b,f)
multE_in: (b,f)
multF_in: (b,f)
multG_in: (b,f)
multH_in: (b,f)
multJ_in: (b,b,b,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

TIMESK_IN_GGA(s(X1), X2, X3) → U20_GGA(X1, X2, X3, multI_in_gga(X1, X2, X3))
TIMESK_IN_GGA(s(X1), X2, X3) → MULTI_IN_GGA(X1, X2, X3)
MULTI_IN_GGA(s(X1), 0, X2) → U9_GGA(X1, X2, multA_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), 0, X2) → MULTA_IN_GA(X1, X2)
MULTA_IN_GA(s(X1), X2) → U1_GA(X1, X2, multA_in_ga(X1, X2))
MULTA_IN_GA(s(X1), X2) → MULTA_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(0), s(X2)) → U10_GGA(X1, X2, multB_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(0), s(X2)) → MULTB_IN_GA(X1, X2)
MULTB_IN_GA(s(X1), s(X2)) → U2_GA(X1, X2, multB_in_ga(X1, X2))
MULTB_IN_GA(s(X1), s(X2)) → MULTB_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(0)), s(s(X2))) → U11_GGA(X1, X2, multC_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(0)), s(s(X2))) → MULTC_IN_GA(X1, X2)
MULTC_IN_GA(s(X1), s(s(X2))) → U3_GA(X1, X2, multC_in_ga(X1, X2))
MULTC_IN_GA(s(X1), s(s(X2))) → MULTC_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(s(0))), s(s(s(X2)))) → U12_GGA(X1, X2, multD_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(s(0))), s(s(s(X2)))) → MULTD_IN_GA(X1, X2)
MULTD_IN_GA(s(X1), s(s(s(X2)))) → U4_GA(X1, X2, multD_in_ga(X1, X2))
MULTD_IN_GA(s(X1), s(s(s(X2)))) → MULTD_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(s(s(0)))), s(s(s(s(X2))))) → U13_GGA(X1, X2, multE_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(s(s(0)))), s(s(s(s(X2))))) → MULTE_IN_GA(X1, X2)
MULTE_IN_GA(s(X1), s(s(s(s(X2))))) → U5_GA(X1, X2, multE_in_ga(X1, X2))
MULTE_IN_GA(s(X1), s(s(s(s(X2))))) → MULTE_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(s(s(s(0))))), s(s(s(s(s(X2)))))) → U14_GGA(X1, X2, multF_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(s(s(s(0))))), s(s(s(s(s(X2)))))) → MULTF_IN_GA(X1, X2)
MULTF_IN_GA(s(X1), s(s(s(s(s(X2)))))) → U6_GA(X1, X2, multF_in_ga(X1, X2))
MULTF_IN_GA(s(X1), s(s(s(s(s(X2)))))) → MULTF_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(s(s(s(s(0)))))), s(s(s(s(s(s(X2))))))) → U15_GGA(X1, X2, multG_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(s(s(s(s(0)))))), s(s(s(s(s(s(X2))))))) → MULTG_IN_GA(X1, X2)
MULTG_IN_GA(s(X1), s(s(s(s(s(s(X2))))))) → U7_GA(X1, X2, multG_in_ga(X1, X2))
MULTG_IN_GA(s(X1), s(s(s(s(s(s(X2))))))) → MULTG_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(s(s(s(s(s(0))))))), s(s(s(s(s(s(s(X2)))))))) → U16_GGA(X1, X2, multH_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(s(s(s(s(s(0))))))), s(s(s(s(s(s(s(X2)))))))) → MULTH_IN_GA(X1, X2)
MULTH_IN_GA(s(X1), s(s(s(s(s(s(s(X2)))))))) → U8_GA(X1, X2, multH_in_ga(X1, X2))
MULTH_IN_GA(s(X1), s(s(s(s(s(s(s(X2)))))))) → MULTH_IN_GA(X1, X2)
MULTI_IN_GGA(X1, s(s(s(s(s(s(s(s(X2)))))))), s(s(s(s(s(s(s(s(X3))))))))) → U17_GGA(X1, X2, X3, multJ_in_ggga(X1, s(s(s(s(s(s(s(X2))))))), X2, X3))
MULTI_IN_GGA(X1, s(s(s(s(s(s(s(s(X2)))))))), s(s(s(s(s(s(s(s(X3))))))))) → MULTJ_IN_GGGA(X1, s(s(s(s(s(s(s(X2))))))), X2, X3)
MULTJ_IN_GGGA(s(X1), X2, 0, X3) → U18_GGGA(X1, X2, X3, multI_in_gga(X1, s(X2), X3))
MULTJ_IN_GGGA(s(X1), X2, 0, X3) → MULTI_IN_GGA(X1, s(X2), X3)
MULTJ_IN_GGGA(X1, X2, s(X3), s(X4)) → U19_GGGA(X1, X2, X3, X4, multJ_in_ggga(X1, X2, X3, X4))
MULTJ_IN_GGGA(X1, X2, s(X3), s(X4)) → MULTJ_IN_GGGA(X1, X2, X3, X4)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
multI_in_gga(x1, x2, x3)  =  multI_in_gga(x1, x2)
0  =  0
multA_in_ga(x1, x2)  =  multA_in_ga(x1)
multB_in_ga(x1, x2)  =  multB_in_ga(x1)
multC_in_ga(x1, x2)  =  multC_in_ga(x1)
multD_in_ga(x1, x2)  =  multD_in_ga(x1)
multE_in_ga(x1, x2)  =  multE_in_ga(x1)
multF_in_ga(x1, x2)  =  multF_in_ga(x1)
multG_in_ga(x1, x2)  =  multG_in_ga(x1)
multH_in_ga(x1, x2)  =  multH_in_ga(x1)
multJ_in_ggga(x1, x2, x3, x4)  =  multJ_in_ggga(x1, x2, x3)
TIMESK_IN_GGA(x1, x2, x3)  =  TIMESK_IN_GGA(x1, x2)
U20_GGA(x1, x2, x3, x4)  =  U20_GGA(x1, x2, x4)
MULTI_IN_GGA(x1, x2, x3)  =  MULTI_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3)  =  U9_GGA(x1, x3)
MULTA_IN_GA(x1, x2)  =  MULTA_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
U10_GGA(x1, x2, x3)  =  U10_GGA(x1, x3)
MULTB_IN_GA(x1, x2)  =  MULTB_IN_GA(x1)
U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)
U11_GGA(x1, x2, x3)  =  U11_GGA(x1, x3)
MULTC_IN_GA(x1, x2)  =  MULTC_IN_GA(x1)
U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)
U12_GGA(x1, x2, x3)  =  U12_GGA(x1, x3)
MULTD_IN_GA(x1, x2)  =  MULTD_IN_GA(x1)
U4_GA(x1, x2, x3)  =  U4_GA(x1, x3)
U13_GGA(x1, x2, x3)  =  U13_GGA(x1, x3)
MULTE_IN_GA(x1, x2)  =  MULTE_IN_GA(x1)
U5_GA(x1, x2, x3)  =  U5_GA(x1, x3)
U14_GGA(x1, x2, x3)  =  U14_GGA(x1, x3)
MULTF_IN_GA(x1, x2)  =  MULTF_IN_GA(x1)
U6_GA(x1, x2, x3)  =  U6_GA(x1, x3)
U15_GGA(x1, x2, x3)  =  U15_GGA(x1, x3)
MULTG_IN_GA(x1, x2)  =  MULTG_IN_GA(x1)
U7_GA(x1, x2, x3)  =  U7_GA(x1, x3)
U16_GGA(x1, x2, x3)  =  U16_GGA(x1, x3)
MULTH_IN_GA(x1, x2)  =  MULTH_IN_GA(x1)
U8_GA(x1, x2, x3)  =  U8_GA(x1, x3)
U17_GGA(x1, x2, x3, x4)  =  U17_GGA(x1, x2, x4)
MULTJ_IN_GGGA(x1, x2, x3, x4)  =  MULTJ_IN_GGGA(x1, x2, x3)
U18_GGGA(x1, x2, x3, x4)  =  U18_GGGA(x1, x2, x4)
U19_GGGA(x1, x2, x3, x4, x5)  =  U19_GGGA(x1, x2, x3, x5)

We have to consider all (P,R,Pi)-chains

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

TIMESK_IN_GGA(s(X1), X2, X3) → U20_GGA(X1, X2, X3, multI_in_gga(X1, X2, X3))
TIMESK_IN_GGA(s(X1), X2, X3) → MULTI_IN_GGA(X1, X2, X3)
MULTI_IN_GGA(s(X1), 0, X2) → U9_GGA(X1, X2, multA_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), 0, X2) → MULTA_IN_GA(X1, X2)
MULTA_IN_GA(s(X1), X2) → U1_GA(X1, X2, multA_in_ga(X1, X2))
MULTA_IN_GA(s(X1), X2) → MULTA_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(0), s(X2)) → U10_GGA(X1, X2, multB_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(0), s(X2)) → MULTB_IN_GA(X1, X2)
MULTB_IN_GA(s(X1), s(X2)) → U2_GA(X1, X2, multB_in_ga(X1, X2))
MULTB_IN_GA(s(X1), s(X2)) → MULTB_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(0)), s(s(X2))) → U11_GGA(X1, X2, multC_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(0)), s(s(X2))) → MULTC_IN_GA(X1, X2)
MULTC_IN_GA(s(X1), s(s(X2))) → U3_GA(X1, X2, multC_in_ga(X1, X2))
MULTC_IN_GA(s(X1), s(s(X2))) → MULTC_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(s(0))), s(s(s(X2)))) → U12_GGA(X1, X2, multD_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(s(0))), s(s(s(X2)))) → MULTD_IN_GA(X1, X2)
MULTD_IN_GA(s(X1), s(s(s(X2)))) → U4_GA(X1, X2, multD_in_ga(X1, X2))
MULTD_IN_GA(s(X1), s(s(s(X2)))) → MULTD_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(s(s(0)))), s(s(s(s(X2))))) → U13_GGA(X1, X2, multE_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(s(s(0)))), s(s(s(s(X2))))) → MULTE_IN_GA(X1, X2)
MULTE_IN_GA(s(X1), s(s(s(s(X2))))) → U5_GA(X1, X2, multE_in_ga(X1, X2))
MULTE_IN_GA(s(X1), s(s(s(s(X2))))) → MULTE_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(s(s(s(0))))), s(s(s(s(s(X2)))))) → U14_GGA(X1, X2, multF_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(s(s(s(0))))), s(s(s(s(s(X2)))))) → MULTF_IN_GA(X1, X2)
MULTF_IN_GA(s(X1), s(s(s(s(s(X2)))))) → U6_GA(X1, X2, multF_in_ga(X1, X2))
MULTF_IN_GA(s(X1), s(s(s(s(s(X2)))))) → MULTF_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(s(s(s(s(0)))))), s(s(s(s(s(s(X2))))))) → U15_GGA(X1, X2, multG_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(s(s(s(s(0)))))), s(s(s(s(s(s(X2))))))) → MULTG_IN_GA(X1, X2)
MULTG_IN_GA(s(X1), s(s(s(s(s(s(X2))))))) → U7_GA(X1, X2, multG_in_ga(X1, X2))
MULTG_IN_GA(s(X1), s(s(s(s(s(s(X2))))))) → MULTG_IN_GA(X1, X2)
MULTI_IN_GGA(s(X1), s(s(s(s(s(s(s(0))))))), s(s(s(s(s(s(s(X2)))))))) → U16_GGA(X1, X2, multH_in_ga(X1, X2))
MULTI_IN_GGA(s(X1), s(s(s(s(s(s(s(0))))))), s(s(s(s(s(s(s(X2)))))))) → MULTH_IN_GA(X1, X2)
MULTH_IN_GA(s(X1), s(s(s(s(s(s(s(X2)))))))) → U8_GA(X1, X2, multH_in_ga(X1, X2))
MULTH_IN_GA(s(X1), s(s(s(s(s(s(s(X2)))))))) → MULTH_IN_GA(X1, X2)
MULTI_IN_GGA(X1, s(s(s(s(s(s(s(s(X2)))))))), s(s(s(s(s(s(s(s(X3))))))))) → U17_GGA(X1, X2, X3, multJ_in_ggga(X1, s(s(s(s(s(s(s(X2))))))), X2, X3))
MULTI_IN_GGA(X1, s(s(s(s(s(s(s(s(X2)))))))), s(s(s(s(s(s(s(s(X3))))))))) → MULTJ_IN_GGGA(X1, s(s(s(s(s(s(s(X2))))))), X2, X3)
MULTJ_IN_GGGA(s(X1), X2, 0, X3) → U18_GGGA(X1, X2, X3, multI_in_gga(X1, s(X2), X3))
MULTJ_IN_GGGA(s(X1), X2, 0, X3) → MULTI_IN_GGA(X1, s(X2), X3)
MULTJ_IN_GGGA(X1, X2, s(X3), s(X4)) → U19_GGGA(X1, X2, X3, X4, multJ_in_ggga(X1, X2, X3, X4))
MULTJ_IN_GGGA(X1, X2, s(X3), s(X4)) → MULTJ_IN_GGGA(X1, X2, X3, X4)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
multI_in_gga(x1, x2, x3)  =  multI_in_gga(x1, x2)
0  =  0
multA_in_ga(x1, x2)  =  multA_in_ga(x1)
multB_in_ga(x1, x2)  =  multB_in_ga(x1)
multC_in_ga(x1, x2)  =  multC_in_ga(x1)
multD_in_ga(x1, x2)  =  multD_in_ga(x1)
multE_in_ga(x1, x2)  =  multE_in_ga(x1)
multF_in_ga(x1, x2)  =  multF_in_ga(x1)
multG_in_ga(x1, x2)  =  multG_in_ga(x1)
multH_in_ga(x1, x2)  =  multH_in_ga(x1)
multJ_in_ggga(x1, x2, x3, x4)  =  multJ_in_ggga(x1, x2, x3)
TIMESK_IN_GGA(x1, x2, x3)  =  TIMESK_IN_GGA(x1, x2)
U20_GGA(x1, x2, x3, x4)  =  U20_GGA(x1, x2, x4)
MULTI_IN_GGA(x1, x2, x3)  =  MULTI_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3)  =  U9_GGA(x1, x3)
MULTA_IN_GA(x1, x2)  =  MULTA_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
U10_GGA(x1, x2, x3)  =  U10_GGA(x1, x3)
MULTB_IN_GA(x1, x2)  =  MULTB_IN_GA(x1)
U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)
U11_GGA(x1, x2, x3)  =  U11_GGA(x1, x3)
MULTC_IN_GA(x1, x2)  =  MULTC_IN_GA(x1)
U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)
U12_GGA(x1, x2, x3)  =  U12_GGA(x1, x3)
MULTD_IN_GA(x1, x2)  =  MULTD_IN_GA(x1)
U4_GA(x1, x2, x3)  =  U4_GA(x1, x3)
U13_GGA(x1, x2, x3)  =  U13_GGA(x1, x3)
MULTE_IN_GA(x1, x2)  =  MULTE_IN_GA(x1)
U5_GA(x1, x2, x3)  =  U5_GA(x1, x3)
U14_GGA(x1, x2, x3)  =  U14_GGA(x1, x3)
MULTF_IN_GA(x1, x2)  =  MULTF_IN_GA(x1)
U6_GA(x1, x2, x3)  =  U6_GA(x1, x3)
U15_GGA(x1, x2, x3)  =  U15_GGA(x1, x3)
MULTG_IN_GA(x1, x2)  =  MULTG_IN_GA(x1)
U7_GA(x1, x2, x3)  =  U7_GA(x1, x3)
U16_GGA(x1, x2, x3)  =  U16_GGA(x1, x3)
MULTH_IN_GA(x1, x2)  =  MULTH_IN_GA(x1)
U8_GA(x1, x2, x3)  =  U8_GA(x1, x3)
U17_GGA(x1, x2, x3, x4)  =  U17_GGA(x1, x2, x4)
MULTJ_IN_GGGA(x1, x2, x3, x4)  =  MULTJ_IN_GGGA(x1, x2, x3)
U18_GGGA(x1, x2, x3, x4)  =  U18_GGGA(x1, x2, x4)
U19_GGGA(x1, x2, x3, x4, x5)  =  U19_GGGA(x1, x2, x3, x5)

We have to consider all (P,R,Pi)-chains

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 9 SCCs with 29 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MULTH_IN_GA(s(X1), s(s(s(s(s(s(s(X2)))))))) → MULTH_IN_GA(X1, X2)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
MULTH_IN_GA(x1, x2)  =  MULTH_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(8) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(9) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MULTH_IN_GA(s(X1)) → MULTH_IN_GA(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(10) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULTH_IN_GA(s(X1)) → MULTH_IN_GA(X1)
    The graph contains the following edges 1 > 1

(11) YES

(12) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MULTG_IN_GA(s(X1), s(s(s(s(s(s(X2))))))) → MULTG_IN_GA(X1, X2)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
MULTG_IN_GA(x1, x2)  =  MULTG_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(13) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(14) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MULTG_IN_GA(s(X1)) → MULTG_IN_GA(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(15) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULTG_IN_GA(s(X1)) → MULTG_IN_GA(X1)
    The graph contains the following edges 1 > 1

(16) YES

(17) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MULTF_IN_GA(s(X1), s(s(s(s(s(X2)))))) → MULTF_IN_GA(X1, X2)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
MULTF_IN_GA(x1, x2)  =  MULTF_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(18) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(19) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MULTF_IN_GA(s(X1)) → MULTF_IN_GA(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(20) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULTF_IN_GA(s(X1)) → MULTF_IN_GA(X1)
    The graph contains the following edges 1 > 1

(21) YES

(22) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MULTE_IN_GA(s(X1), s(s(s(s(X2))))) → MULTE_IN_GA(X1, X2)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
MULTE_IN_GA(x1, x2)  =  MULTE_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(23) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(24) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MULTE_IN_GA(s(X1)) → MULTE_IN_GA(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(25) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULTE_IN_GA(s(X1)) → MULTE_IN_GA(X1)
    The graph contains the following edges 1 > 1

(26) YES

(27) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MULTD_IN_GA(s(X1), s(s(s(X2)))) → MULTD_IN_GA(X1, X2)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
MULTD_IN_GA(x1, x2)  =  MULTD_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(28) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(29) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MULTD_IN_GA(s(X1)) → MULTD_IN_GA(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(30) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULTD_IN_GA(s(X1)) → MULTD_IN_GA(X1)
    The graph contains the following edges 1 > 1

(31) YES

(32) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MULTC_IN_GA(s(X1), s(s(X2))) → MULTC_IN_GA(X1, X2)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
MULTC_IN_GA(x1, x2)  =  MULTC_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(33) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(34) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MULTC_IN_GA(s(X1)) → MULTC_IN_GA(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(35) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULTC_IN_GA(s(X1)) → MULTC_IN_GA(X1)
    The graph contains the following edges 1 > 1

(36) YES

(37) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MULTB_IN_GA(s(X1), s(X2)) → MULTB_IN_GA(X1, X2)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
MULTB_IN_GA(x1, x2)  =  MULTB_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(38) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(39) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MULTB_IN_GA(s(X1)) → MULTB_IN_GA(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(40) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULTB_IN_GA(s(X1)) → MULTB_IN_GA(X1)
    The graph contains the following edges 1 > 1

(41) YES

(42) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MULTI_IN_GGA(X1, s(s(s(s(s(s(s(s(X2)))))))), s(s(s(s(s(s(s(s(X3))))))))) → MULTJ_IN_GGGA(X1, s(s(s(s(s(s(s(X2))))))), X2, X3)
MULTJ_IN_GGGA(s(X1), X2, 0, X3) → MULTI_IN_GGA(X1, s(X2), X3)
MULTJ_IN_GGGA(X1, X2, s(X3), s(X4)) → MULTJ_IN_GGGA(X1, X2, X3, X4)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
0  =  0
MULTI_IN_GGA(x1, x2, x3)  =  MULTI_IN_GGA(x1, x2)
MULTJ_IN_GGGA(x1, x2, x3, x4)  =  MULTJ_IN_GGGA(x1, x2, x3)

We have to consider all (P,R,Pi)-chains

(43) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(44) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MULTI_IN_GGA(X1, s(s(s(s(s(s(s(s(X2))))))))) → MULTJ_IN_GGGA(X1, s(s(s(s(s(s(s(X2))))))), X2)
MULTJ_IN_GGGA(s(X1), X2, 0) → MULTI_IN_GGA(X1, s(X2))
MULTJ_IN_GGGA(X1, X2, s(X3)) → MULTJ_IN_GGGA(X1, X2, X3)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(45) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULTJ_IN_GGGA(s(X1), X2, 0) → MULTI_IN_GGA(X1, s(X2))
    The graph contains the following edges 1 > 1

  • MULTJ_IN_GGGA(X1, X2, s(X3)) → MULTJ_IN_GGGA(X1, X2, X3)
    The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3

  • MULTI_IN_GGA(X1, s(s(s(s(s(s(s(s(X2))))))))) → MULTJ_IN_GGGA(X1, s(s(s(s(s(s(s(X2))))))), X2)
    The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3

(46) YES

(47) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

MULTA_IN_GA(s(X1), X2) → MULTA_IN_GA(X1, X2)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
MULTA_IN_GA(x1, x2)  =  MULTA_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(48) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(49) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MULTA_IN_GA(s(X1)) → MULTA_IN_GA(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(50) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULTA_IN_GA(s(X1)) → MULTA_IN_GA(X1)
    The graph contains the following edges 1 > 1

(51) YES